package com.redhipps.hips.client.services;

import java.util.List;

import com.google.gwt.user.client.rpc.AsyncCallback;
import com.redhipps.hips.client.model.Institution;
import com.redhipps.hips.client.model.Model;
import com.redhipps.hips.client.model.Schedule;
import com.redhipps.hips.client.model.ScheduleSolution;

public interface IOServiceAsync {

  void listInstitutions(AsyncCallback<List<Institution>> callback);

  void listSchedules(Institution institution, AsyncCallback<List<Schedule>> callback);

  void listSolutions(Schedule schedule, AsyncCallback<List<ScheduleSolution>> callback);

  <T extends Model> void write(T model, AsyncCallback<Void> callback);

}
